Skip to content

Rollup of 4 pull requests#153617

Merged
rust-bors[bot] merged 9 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-udG4Tzr
Mar 9, 2026
Merged

Rollup of 4 pull requests#153617
rust-bors[bot] merged 9 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-udG4Tzr

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

cyrgani and others added 9 commits February 24, 2026 17:43
Always make tuple elements a coercion site

Previously we only used `check_expr_coercible_to_type` if we had an expectation (using `check_expr_with_expectation(NoExpectation)` otherwise). Normally that'd be fine, because without an expectation we can't insert a coercion anyway. However, for the case of never-to-any coercion specifically, we _do_ insert it eagerly, so this prevents some code from compiling, for example:

```rust
((),) = (loop {},);
```

With this PR we are always using `check_expr_coercible_to_type` (using an infer var if there is no expectation), which allows slightly more code to compile.

Fixes rust-lang#112856

r? BoxyUwU
…r=RalfJung

miri/const eval: support `MaybeDangling`

r? RalfJung
…ete, r=fee1-dead,Nadrieril

stop marking `deref_patterns` as an incomplete feature

This PR removes the `incomplete_feature` warning for `deref_patterns`. The reason given for this in the tracking issue (rust-lang#87121) was
> Per policy, the `incomplete_feature` is supposed to stay on until the feature has an accepted RFC. We're slowly working on writing up that RFC so it'll take some more time unfortunately.
>
> I don't know of any compiler crashes it causes today. The feature should be pretty usable.

However, I could not find any evidence of such a policy. The [lint documentation](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#incomplete-features) for `incomplete_features` also only mentions features that are more likely to cause errors.
There are also many other features without an RFC that are not considered incomplete, e.g. `macro_metavar_expr_concat`, `negative_impls` or `yeet_expr`.
The feature does not cause any known ICEs either.

The concrete motivation is to use this feature to replace `box_patterns` in the compiler and pave the way towards removing that legacy feature.
…ng-zst, r=RalfJung

fix ICE in `const_c_variadic` when passing ZSTs

fixes rust-lang#153351
r? RalfJung

There was a mismatch between the caller and callee ABI where the caller does not pass ZST arguments, but the callee does expect them. Because ZSTs don't implement `VaArgSafe` the program must already be invalid if this comes up.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 9, 2026
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 9, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 9, 2026

📌 Commit 610ea1d has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 9, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 9, 2026
…uwer

Rollup of 4 pull requests

Successful merges:

 - #147834 (Always make tuple elements a coercion site)
 - #150446 (miri/const eval: support `MaybeDangling`)
 - #153053 (stop marking `deref_patterns` as an incomplete feature)
 - #153398 (fix ICE in `const_c_variadic` when passing ZSTs)
@rust-bors rust-bors bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 9, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 9, 2026

💔 Test for 5de528f failed: CI. Failed job:

@JonathanBrouwer
Copy link
Contributor Author

@bors retry

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 9, 2026
@rust-bors

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
/dev/sda15      105M  6.2M   99M   6% /boot/efi
tmpfs           1.6G   12K  1.6G   1% /run/user/1001
================================================================================

Sufficient disk space available (95787792KB >= 52428800KB). Skipping cleanup.
##[group]Run src/ci/scripts/setup-environment.sh
src/ci/scripts/setup-environment.sh
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
---
##[endgroup]
Image input checksum c4ffd166f3598327482ff38e7c5e1734131bc7f8a0230ef90b642b11bd4161ef2ea101ddc5a1b2e80114762d4dfdfd3cb7de6a0facdd651fc51d7abab2886ab9
##[group]Building docker image for dist-loongarch64-linux
Docker version 28.0.4, build b8034c0
Error response from daemon: Get "https://ghcr.io/v2/": Get "https://ghcr.io/token?account=rust-lang&client_id=docker&offline_token=true&service=ghcr.io": net/http: request canceled (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)
##[error]Process completed with exit code 1.
##[group]Run echo "disk usage:"
echo "disk usage:"
df -h
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}

@JonathanBrouwer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added the merged-by-bors This PR was explicitly merged by bors. label Mar 9, 2026
@rust-bors rust-bors bot removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Mar 9, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 9, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 30m 36s
Pushing 2d76d9b to main...

@rust-bors rust-bors bot merged commit 2d76d9b into rust-lang:main Mar 9, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 9, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147834 Always make tuple elements a coercion site 61ef200ee20fb70a00d96f606aa3ba0649c73756 (link)
#150446 miri/const eval: support MaybeDangling d44f7f21e9df43f366378a45f3f47d51c041a29e (link)
#153053 stop marking deref_patterns as an incomplete feature 54c32138f2d88dc3f28737cb194bf735c577afbe (link)
#153398 fix ICE in const_c_variadic when passing ZSTs 62d41da8e4ffd8bb0b17fc04f1e70e0b0fb717f7 (link)

previous master: 3945997aab

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

github-actions bot commented Mar 9, 2026

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 3945997 (parent) -> 2d76d9b (this PR)

Test differences

Show 34 test diffs

Stage 1

  • [ui] tests/ui/consts/const-eval/c-variadic-ignored-argument.rs: [missing] -> pass (J0)
  • [ui] tests/ui/tuple/coercion-never.rs: [missing] -> pass (J0)
  • [ui] tests/ui/tuple/coercion-slice.rs: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/consts/const-eval/c-variadic-ignored-argument.rs: [missing] -> pass (J1)
  • [ui] tests/ui/tuple/coercion-never.rs: [missing] -> pass (J1)
  • [ui] tests/ui/tuple/coercion-slice.rs: [missing] -> pass (J1)

Additionally, 28 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 2d76d9bc76f27b03b4899e72ce561c7ac2c5cf6b --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-x86_64-apple: 2h 32m -> 3h 4m (+21.1%)
  2. dist-aarch64-apple: 2h 13m -> 1h 46m (-20.0%)
  3. aarch64-apple: 4h 1m -> 3h 22m (-16.0%)
  4. x86_64-gnu-llvm-21-2: 1h 38m -> 1h 24m (-13.5%)
  5. dist-apple-various: 1h 52m -> 2h 6m (+12.0%)
  6. aarch64-gnu-debug: 1h 10m -> 1h 17m (+10.1%)
  7. x86_64-msvc-ext1: 2h 19m -> 2h 6m (-8.8%)
  8. aarch64-msvc-2: 1h 42m -> 1h 50m (+7.4%)
  9. dist-x86_64-netbsd: 1h 27m -> 1h 21m (-7.0%)
  10. i686-gnu-nopt-2: 2h 22m -> 2h 12m (-6.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (2d76d9b): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.0% [-0.0%, -0.0%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (secondary -2.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.6% [-2.9%, -2.3%] 2
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.086s -> 479.112s (-0.20%)
Artifact size: 394.96 MiB -> 395.06 MiB (0.03%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants